package com.dapeng.cleardatabackend.model.vo;

import com.dapeng.cleardatabackend.model.entity.User;
import com.dapeng.cleardatabackend.model.enums.UserGenderEnum;
import com.dapeng.cleardatabackend.model.enums.UserRoleEnum;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * @author dapeng
 * @description 用户视图类
 * @date 2024/12/4 17:12
 */
@Data
@ApiModel(description = "用户视图类")
public class UserVO implements Serializable {
    /**
     * id
     */
    private Long id;

    /**
     * 账号
     */
    @ApiModelProperty(value = "账号")
    private String userAccount;


    /**
     * 用户昵称
     */
    @ApiModelProperty(value = "用户昵称")
    private String username;

    /**
     * 电话
     */
    @ApiModelProperty(value = "电话")
    private String phone;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;

    /**
     * 用户头像
     */
    @ApiModelProperty(value = "用户头像url")
    private String userAvatar;

    /**
     * 用户简介
     */
    @ApiModelProperty(value = "用户简介")
    private String userProfile;

    /**
     * 性别 0-男 1-女 2-保密
     */
    @ApiModelProperty(value = "性别 0-男 1-女 2-保密")
    private UserGenderEnum gender;

    /**
     * 用户角色：0-普通用户 1-管理员 2-超级管理员 -1-被禁用
     */
    @ApiModelProperty(value = "用户角色：0-普通用户 1-管理员 2-超级管理员 -1-被禁用")
    private UserRoleEnum userRole;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    private static final long serialVersionUID = 112312L;

    /**
     * 对象转vo
     *
     * @param user 用户
     * @return {@link UserVO }
     */
    public static UserVO objectToVO(User user) {
        UserVO userVO = new UserVO();
        BeanUtils.copyProperties(user, userVO);
        return userVO;
    }
}
